import {NEWPWD, CHECKCODE, CHECKPHONE, CHECKACCOUNT, LEVELINFOOBJ, ACTIVITYID} from './mutations-types'
import {getLevelInfo, getActivityId} from '@/service/get-data'
import {PHONE} from '@/config/regex'
const PASSWORD = /^[0-9A-Za-z]{6,20}$/
const ACCOUNT = /^[0-9A-Za-z\u4e00-\u9fa5]{4,12}$/
export default{
  // 验证登录密码是否正确
  checkNewPws ({commit}, obj) {
    if (!obj.value) {
      obj.cb(new Error('密码不能为空'))
    } else if (!PASSWORD.test(obj.value)) {
      obj.cb(new Error('由大小写字母或数字组成6～20个字符'))
    } else {
      obj.cb()
    }
    commit(NEWPWD)
  },
  // 短信验证码6位
  checkCodeMes ({commit}, obj) {
    if (!obj.value) {
      obj.cb(new Error('验证码不能为空'))
    } else if (typeof obj.value !== 'number' && obj.value.length !== 6) {
      obj.cb(new Error('请输入正确的6位数字验证码'))
    } else {
      obj.cb()
    }
    commit(CHECKCODE)
  },
  // 手机号码
  checkPhone ({commit}, obj) {
    if (!obj.value) {
      obj.cb(new Error('手机号码不能为空'))
    } else if (!PHONE.test(obj.value)) {
      obj.cb(new Error('输入正确的手机号码'))
    } else {
      obj.cb()
    }
    commit(CHECKPHONE)
  },
  // 用户名
  checkAccount ({commit}, obj) {
    if (!obj.value) {
      obj.cb(new Error('用户名不能为空'))
    } else if (!ACCOUNT.test(obj.value)) {
      obj.cb(new Error('可由汉字、大小写字母或数字组成的4～12个非空字符'))
    } else {
      obj.cb()
    }
    commit(CHECKACCOUNT)
  },
  async getUserLevelInfo ({commit}) {
    let res = await getLevelInfo()
    if (res.data.resultCode && res.data.resultCode === 2000) {
      commit(LEVELINFOOBJ, res.data.data)
    }
  },
  async fetchActivityId ({commit}) {
    let res = await getActivityId()
    if (res.data.resultCode && res.data.resultCode === 2000) {
      commit(ACTIVITYID, res.data.data)
      return new Promise((resolve, reject) => {
        resolve(res.data.data)
      })
    }
  }

}
